home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / keygen.txt < prev    next >
Encoding:
Text File  |  1999-06-16  |  4.4 KB  |  97 lines

  1.  
  2. how to create a keygen for FireWorx Crackme 6...
  3.  
  4. i hope you have read Terminal Cilla's Tutorial#4, if so, follow it, until the calculate
  5. code call, then trace into this.. 
  6.  
  7.  
  8. 015F:00441701  8BF8                MOV     EDI,EAX          ; pointer to name
  9. 015F:00441703  BB05033949          MOV     EBX,49390305     ; magic number #1
  10. 015F:00441708  BE20126348          MOV     ESI,48631220     ; magic number #2
  11. 015F:0044170D  8BC7                MOV     EAX,EDI
  12. 015F:0044170F  E82023FCFF          CALL    00403A34         ; get name length
  13. 015F:00441714  85C0                TEST    EAX,EAX          ; check is bigger than 0
  14. 015F:00441716  7E2E                JLE     00441746         ;
  15.  
  16.  
  17. the above code just gets the length of our name... ignore it..(apart from the magic number bit)
  18.  
  19.  
  20. 015F:00441718  BA01000000          MOV     EDX,00000001
  21. 015F:0044171D  33C9                XOR     ECX,ECX          ; prepare ecx for a byte from name
  22. 015F:0044171F  8A4C17FF            MOV     CL,[EDX+EDI-01]  ; get a character
  23. 015F:00441723  33D9                XOR     EBX,ECX          ; xor it with ebx
  24. 015F:00441725  33F3                XOR     ESI,EBX          ; xor ebx with esi
  25. 015F:00441727  F6C301              TEST    BL,01            ; test bit #1 in bl for some reason
  26. 015F:0044172A  740F                JZ      0044173B
  27. 015F:0044172C  D1FB                SAR     EBX,1            ; shift ebx right, 1 bit
  28. 015F:0044172E  7903                JNS     00441733         ; jump if not signed (signed = negative)
  29. 015F:00441730  83D300              ADC     EBX,00           ; ?? add with carry??
  30. 015F:00441733  81F311032001        XOR     EBX,01200311     ; xor ebx again
  31. 015F:00441739  EB07                JMP     00441742
  32. 015F:0044173B  D1FB                SAR     EBX,1            ; shift ebx right, 1 bit again
  33. 015F:0044173D  7903                JNS     00441742
  34. 015F:0044173F  83D300              ADC     EBX,00
  35. 015F:00441742  42                  INC     EDX              ; increase letter pointer counter thing
  36. 015F:00441743  48                  DEC     EAX              ; decrease length counter
  37. 015F:00441744  75D7                JNZ     0044171D         ; do maths again, until no letters left
  38.  
  39.  
  40. the code above is the main serial generator, quite small and simple, all we have to do is
  41. 'borrow' this code, and replicate it in your favorite programming language. after this routine
  42. has finished, ebx & esi = our valid serial
  43.  
  44.  
  45. 015F:00441746  8B0424              MOV     EAX,[ESP]
  46. 015F:00441749  50                  PUSH    EAX
  47. 015F:0044174A  8BC3                MOV     EAX,EBX
  48. 015F:0044174C  25FFFF0000          AND     EAX,0000FFFF     ; get low word of ebx  (reg#1)
  49. 015F:00441751  89442408            MOV     [ESP+08],EAX
  50. 015F:00441755  C644240C00          MOV     BYTE PTR [ESP+0C],00
  51. 015F:0044175A  C1EB10              SHR     EBX,10           ; get high word of ebx (reg#2)
  52. 015F:0044175D  895C2410            MOV     [ESP+10],EBX
  53. 015F:00441761  C644241400          MOV     BYTE PTR [ESP+14],00
  54. 015F:00441766  8BC6                MOV     EAX,ESI
  55. 015F:00441768  25FFFF0000          AND     EAX,0000FFFF     ; lo word of esi (reg#3)
  56. 015F:0044176D  89442418            MOV     [ESP+18],EAX
  57. 015F:00441771  C644241C00          MOV     BYTE PTR [ESP+1C],00
  58. 015F:00441776  C1EE10              SHR     ESI,10           ; high word of esi (reg#4)
  59. 015F:00441779  89742420            MOV     [ESP+20],ESI
  60. 015F:0044177D  C644242400          MOV     BYTE PTR [ESP+24],00
  61.  
  62.  
  63. ^this code^ simple splits up the quad serial into 4 words, for conversion into our ascii code
  64.  
  65.  
  66. 015F:00441782  8D542408            LEA     EDX,[ESP+08]
  67. 015F:00441786  B903000000          MOV     ECX,00000003
  68. 015F:0044178B  B8A4174400          MOV     EAX,004417A4
  69. 015F:00441790  E86F68FCFF          CALL    00408004         ; convert hex into ascii & add '-'
  70. 015F:00441795  83C424              ADD     ESP,24
  71. 015F:00441798  5F                  POP     EDI
  72. 015F:00441799  5E                  POP     ESI
  73. 015F:0044179A  5B                  POP     EBX
  74. 015F:0044179B  C3                  RET
  75.  
  76.  
  77. :?ebx
  78. 054F923B  0089100859  "OÆ;"
  79. :?esi
  80. 3FC7F3B6  1070068662  "?╟≤╢"
  81.  
  82. my code, 923B-054F-F3B6-3FC7
  83. my name 'R!SC'
  84.  
  85.  
  86. okay, real simple, see firecm#6.asm for an example keygen...
  87.  
  88.  
  89. Greets to:
  90. Duelist (tut tut, writing uncrackable crackme's, there should be a rule about that..)
  91. DnNuke, ACiD_BuRN, (mad)Dead-Mike, Magic Mike, Wizzkid, Eternal Bliss, ChoJin, _y :P
  92.  
  93.  
  94.  
  95.  
  96.  
  97. all my love, R!SC ?